A variety of intermediary services enables a user to learn about the presence of other computer user's on a network such as an Intranet or the Internet, and to communicate with them in real-time. This functionality is commonly referred to as “Instant Messaging” (IM). Some of the services that the IM services provide to clients are:                Authenticated user logon.        Adding and deleting members of the user's contact list.        Changing the user's on-line state.        Receipt of asynchronous, real-time, on-line state change notifications from members of the user's contact list.        Delivering real-time messages to other users.        Receipt of asynchronous, real-time messages from other users.        Configuring the user's access permissions, to restrict the ability of other users to view the user's on-line state or send messages to the user.        
The IM service provides a variety of functionality to connected clients. For example, the IM service maintains state changes (e.g. client is on-line, client is offline, client is idle). Additionally, the IM service acts as a switch board through which clients can establish communication sessions without requiring a direct network connection between clients. When a client wishes to communicate with another client, it sends a message to the IM service, which then sends a message to the “destination” client to connect to session with the sending client.
Commands issued from a client to the IM server that result in a reply are known as requests. Requests are entirely asynchronous. The client can submit several requests in sequence without waiting for the server response after submitting each request. The server delivers a response or an error for each request received, but does not necessarily deliver the responses in the same order as the requests were received.
IM services typically use user handles for identifying users. A user handle (also known as “account name” and “logon name”) is a representation of the user's identity that is both unique and persistent. The user handle is usually equivalent to an e-mail address.